﻿/* 2012/1/2 */
using System;
using System.Collections.ObjectModel;

namespace Cosmos.Windows.Themes
{
    /// <summary>
    /// 分组方式选项。
    /// </summary>
    public enum GroupOption : int
    {
        /// <summary>
        /// 不进行分组，将图片加入默认组。
        /// </summary>
        None = 0x0,
        /// <summary>
        /// 根据图片文件名包含的标签分组。
        /// </summary>
        Tag = 0x1,
        /// <summary>
        /// 根据图片路径分组。
        /// </summary>
        Path = 0x2,
        /// <summary>
        /// 根据加入列表的起始文件夹分组。
        /// </summary>
        Start = 0x3,
        /// <summary>
        /// 使用正则表达式匹配文件路径进行分组。
        /// </summary>
        Regex = 0x4,
    }

    /// <summary>
    /// 提供分组方式的描述。
    /// </summary>
    public static class GroupOptionHelper
    {
        private static GroupOption[] _groupOptions = new GroupOption[] {
            GroupOption.None, GroupOption.Path, GroupOption.Start, GroupOption.Regex };

        public static string GetDescription(GroupOption option)
        {
            string result = null;
            switch (option)
            {
                case GroupOption.None:
                    result = "不分组"; break;

                case GroupOption.Tag:
                    result = "标签"; break;

                case GroupOption.Path:
                    result = "文件路径"; break;

                case GroupOption.Start:
                    result = "起始文件夹"; break;

                case GroupOption.Regex:
                    result = "正则表达式"; break;

                default: break;
            }
            return result;
        }

        public static ReadOnlyCollection<GroupOption> GroupOptions
        {
            get
            {
                return Array.AsReadOnly(_groupOptions);
            }
        }
    }
}
